package com.doubletick.proxy.ipidea.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.doubletick.common.annotation.DataScope;
import com.doubletick.proxy.dto.IdNameDto;
import com.doubletick.proxy.ipidea.domain.ProxyAccount;

import java.util.List;

/**
 * 代理账号Service接口
 *
 * @author ruoyi
 * @date 2024-07-08
 */
public interface IProxyAccountService  extends IService<ProxyAccount> {
    /**
     * 查询代理账号
     *
     * @param id 代理账号主键
     * @return 代理账号
     */
    public ProxyAccount selectProxyAccountById(Long id);

    /**
     * 查询代理账号列表
     *
     * @param proxyAccount 代理账号
     * @return 代理账号集合
     */
    public List<ProxyAccount> selectProxyAccountList(ProxyAccount proxyAccount);
    List<IdNameDto> proxyAccountList(ProxyAccount proxyAccount);

    @DataScope(deptAlias = "u", userAlias = "u")
    List<IdNameDto> userList(ProxyAccount proxyAccount);

    /**
     * 新增代理账号
     *
     * @param proxyAccount 代理账号
     * @return 结果
     */
    public int insertProxyAccount(ProxyAccount proxyAccount);

    /**
     * 修改代理账号
     *
     * @param proxyAccount 代理账号
     * @return 结果
     */
    public int updateProxyAccount(ProxyAccount proxyAccount);

    /**
     * 批量删除代理账号
     *
     * @param ids 需要删除的代理账号主键集合
     * @return 结果
     */
    public int deleteProxyAccountByIds(Long[] ids);

    /**
     * 删除代理账号信息
     *
     * @param id 代理账号主键
     * @return 结果
     */
    public int deleteProxyAccountById(Long id);

    List<ProxyAccount> queryProxyIdIsNull10min();

    ProxyAccount selectByProxyIdOrAccount(String s, String account);

    ProxyAccount selectByProxyId(String proxyId);

    boolean updateFlowById(ProxyAccount proxyAccount);

    ProxyAccount selectByUserId(Long userId);
}
